[IAD-MIGRATION-117] Создать миграцию
Контракты данных топиков Kafka контура обработки аудио и Whisper STT
NoteКраткая карточка задачи
- Репозиторий / Компонент:
Apache Kafka Cluster(Канонические топики). - Формат: JSON Schema.
- Ссылка на Метод: Конфигурация метода
- Статус: Готово к реализации
- Спецификации контрактов:
1. Входящий медиа-топик для аудиозаписей bpds.inventory.in.voice.stream
{
"\$schema": "https://json-schema.org",
"title": "VoiceStreamUpload",
"type": "object",
"required": ["trace_id", "user_id", "home_group_id", "audio_file_url", "app_lang"],
"properties": {
"trace_id": { "type": "string" },
"user_id": { "type": "string" },
"home_group_id": { "type": "string" },
"audio_file_url": { "type": "string", "format": "uri" },
"app_lang": { "type": "string", "enum": ["ru", "en"], "default": "ru" }
}
}2. Распределительный топик результатов транскрибации bpds.inventory.in.receipt.upload
Примечание: Структура повторно используется и расширяется полем source для идентификации ИИ-воркера.
{
"\$schema": "https://json-schema.org",
"title": "STTReceiptUpload",
"type": "object",
"required": ["trace_id", "user_id", "home_group_id", "raw_text_input", "app_lang", "source"],
"properties": {
"trace_id": { "type": "string" },
"user_id": { "type": "string" },
"home_group_id": { "type": "string" },
"raw_text_input": { "type": "string" },
"app_lang": { "type": "string", "enum": ["ru", "en"] },
"source": { "type": "string", "enum": ["WHISPER_STT_WORKER", "USER_EDIT"] }
}
}3. Топик трансляции черновиков для WebSocket-модерации bpds.mdm.in.product.process
{
"\$schema": "https://json-schema.org",
"title": "DraftProductProcess",
"type": "object",
"required": ["trace_id", "user_id", "home_group_id", "draft_data", "app_lang"],
"properties": {
"trace_id": { "type": "string" },
"user_id": { "type": "string" },
"home_group_id": { "type": "string" },
"draft_data": {
"type": "object",
"required": ["ticket_id", "unverified_text"],
"properties": {
"ticket_id": { "type": "string" },
"unverified_text": { "type": "string" }
}
},
"app_lang": { "type": "string", "enum": ["ru", "en"] }
}
}